import request from '../../uitls/request'
Page({

    /**
     * 页面的初始数据
     */
    data: {
        navId:'',//作者id
        authorList:[],//公众号作者列表
        articleList:[],//文章列表
        pageIndex:1,//文章列表分页
        go_top_show:false,//回到顶部图标是否显示
        isTriggered:false,//标识下拉刷新是否被触发
        topNum:0
    },

    //获取公众号作者列表数据
    async getInitData(){
        let authorListData = await request("/wxarticle/chapters/json");
        this.setData({
            authorList:authorListData.data,
            navId:authorListData.data[0].id
        })

        this.getArticleList(this.data.navId);

        wx.hideLoading();

    },

    async getArticleList(id){
        if(!id){
            return
        }
        let articleListData = await request('/wxarticle/list/'+id+'/1/json')

        // 关闭消息提示框
        wx.hideLoading();

        this.setData({
            articleList:articleListData.data.datas
        })
    },

     // 点击切换导航的回调
    changeNav(event){
        let navId = event.currentTarget.id;
        this.setData({
            navId : navId >>> 0,
            pageIndex:1
        })

         // 显示正在加载
        wx.showLoading({
             title: '正在加载'
         })

         this.getArticleList(this.data.navId);
    },

     // 跳转至详情页面
     toDetail(event){
        let deskUrl = event.currentTarget.dataset.url;
        wx.navigateTo({
          url: '/pages/webpage/webpage?url='+deskUrl,
        })
    },

    //列表下拉刷新回调
    async handleRefresher(){
        let {articleList} = this.data;

        let articleListData = await request('/wxarticle/list/'+this.data.navId+'/1/json')
        let newList = articleListData.data.datas.reverse();

        newList.forEach(element => {
            let articleItem = articleList.find(item => item.id === element.id);
            if(articleItem == null)
            {
                articleList.unshift(element);
            }
        });       


        this.setData({
            articleList,
            isTriggered: false // 关闭下拉刷新
        });

        wx.stopPullDownRefresh();

    },

    //触底加载回调
    async loadMoreArticleList(){
        let {pageIndex} = this.data;
        let {articleList} = this.data;

        let articleListData = await request('/wxarticle/list/'+this.data.navId+'/'+ (pageIndex++) +'/json')
        let newList = articleListData.data.datas;

        newList.forEach(element => {
            let articleItem = articleList.find(item => item.id === element.id);
            if(articleItem == null)
            {
                articleList.push(element);
            }
        });       

        wx.hideLoading();

        this.setData({
            articleList,
            pageIndex
        });

    },

    //回到顶部回到
    goTop(){
        this.setData({
            topNum:0
        })
    },

    // 获取滚动条当前位置
    onArticleListScroll:function(e){
        if (e.detail.scrollTop > 600) {
            this.setData({
              go_top_show: true
            })
          } else {
            this.setData({
              go_top_show: false
            })
          }
    },

    //scroll-view上滑加载数据回调
    handleToLower(){
        wx.showLoading({
          title: '正在加载',
        })
        this.loadMoreArticleList();
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        wx.showLoading({
            title: '正在加载',
          })
        this.getInitData();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {
    }, 

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})